622E - Ants in Leaves - CodeForces Solution


dfs and similar greedy sortings trees *2200

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>

using namespace std;
using ll = long long;

int main(){
    cin.tie(nullptr);
    ios_base::sync_with_stdio(false);

    int N, A, B, C, ans=0;
    cin >> N;
    vector<vector<int>> E(N), D(N);

    for (int i=0; i<N-1; i++){
        cin >> A >> B;
        A--; B--;
        E[A].push_back(B);
        E[B].push_back(A);
    }

    auto dfs=[&](auto self, int from, int p, int d)->void{
        if (p == 0) C=from;
        if (p != -1 && E[from].size() == 1) D[C].push_back(d);
        for (auto to : E[from]){
            if (to == p) continue;
            self(self, to, from, d+1);
        }
    };

    dfs(dfs, 0, -1, 0);
    for (int i=0; i<N; i++){
        if (!D[i].empty()){
            int s=0;
            sort(D[i].begin(), D[i].end());
            for (auto x : D[i]) s=max(s+1, x);
            ans = max(ans, s);
        }
    }

    cout << ans << endl;

    return 0;
}


Comments

Submit
0 Comments
More Questions

767A - Snacktower
1365A - Matrix Game
714B - Filya and Homework
31A - Worms Evolution
1691A - Beat The Odds
433B - Kuriyama Mirai's Stones
892A - Greed
32A - Reconnaissance
1236D - Alice and the Doll
1207B - Square Filling
1676D - X-Sum
1679A - AvtoBus
1549A - Gregor and Cryptography
918C - The Monster
4B - Before an Exam
545B - Equidistant String
1244C - The Football Season
1696B - NIT Destroys the Universe
1674A - Number Transformation
1244E - Minimizing Difference
1688A - Cirno's Perfect Bitmasks Classroom
219A - k-String
952A - Quirky Quantifiers
451B - Sort the Array
1505H - L BREAK into program
171E - MYSTERIOUS LANGUAGE
630D - Hexagons
1690D - Black and White Stripe
1688D - The Enchanted Forest
1674C - Infinite Replacement